The present application relates generally to use of a remote computing device with a host computer and, more particularly, methods for providing secured communications/transactions between a remote computing device with a host computer.
With each passing day, more and more computers are connected together through pervasive networks, such as corporate WAN (wide area network), the Internet, and the like. With the ever-increasing popularity of such environments, remote network computers are quickly becoming the workstation replacement of choice for corporations of the future. Network computers offer a range of benefits to the corporation including platform independence through JAVA, centralized maintenance from a server, no boundaries for storage, immunity to viruses, and immunity from mechanical device failure such as a bad hard disc. Network computers also present an interesting security problem since, without storage, all work-related information must be exchanged between the server and the client over a wire which must be thought of as insecure.
The first part of any network computer data transmission is establishing a secure line of communication for all transactions. A secure line means a number of things, including authentication of both parties and encryption of transfers such that anyone listening to the conversation in whole or in part can get nothing of value from it. Authenticating the client is an obvious requirement; it says that the user is really who he claims to be and is allowed to receive his personal data. Authenticating the server is less obvious but no less important; it says that the server is really the one the user expected to connect to and not an impostor volunteering to store sensitive data. Finally, enciphered transmissions are necessary so that anyone monitoring the transmission cannot obtain any sensitive data or useful information which will help to decipher sensitive data.
For a network client to be functional as a collaboration host, a secure transmission is not the only requirement. The user of the client must be able to send e-mail, schedules and other work-related requests which may contain sensitive data intended for specific eyes only. However, to do this, the user will need to transmit this data through totally insecure channels, such as unsecured e-mail servers (e.g., POP3 (Post Office Protocol) servers). To satisfy the requirements of the user, the network client must be able to encrypt messages with the appropriate public keys for the intended audience.
Sending encrypted messages entails decrypting the messages at some point. In order for a network client to be able to receive sensitive data which may have arrived via a totally insecure channel, it must be able to decrypt private messages with an appropriate private key. This means that a user's sensitive private key-ring file must be transmitted to the client machine safely and securely.
In order to serve the requirements for a secure transmission, enciphering data over open channels and deciphering data sent over open channels, a solution must overcome some problems inherent to the network computer model. The first problem is the assumedly storage-free network client. Here, the client does not remember anything when turned off, making it immune to viruses. Unfortunately, the client will not remember anything about the user either, including the user's private/public key-ring. Furthermore, a network client will not have a receptacle for portable media from which to load a user key-ring. Effectively, everything sensitive, including the user's private data, private keys, and list of certified public keys, are stored on the server and transmitted to the client.
Transmission of information can be compromised in a variety of ways. For instance, "visible transmission" poses one such problem to achieving secured communications. Because information must be somehow transmitted physically, such as over a wire (e.g., Internet) or wireless (e.g., cellular) network, the transmission is "visible"--that is, something which an unauthorized third party can tap into. A network computer can be connected directly over a LAN in an intranet setting, making transmissions visible to insiders, or it can be connected via the Internet, making transmissions visible to anyone. For instance, an unauthorized individual could monitor individual bits of data as that data stream's over a wire.
One approach to establishing a secure line between points A and B is to employ the Diffie-Hellman technique; see e.g., U.S. Pat. No. 4,200,770 (Apr. 29, 1980), entitled CRYPTOGRAPHIC APPARATUS AND METHOD, the disclosure of which is hereby incorporated by reference. Here, point A and point B each solve components of a logarithm independently, and, then, exchange the components over an open wire. Because each one, after a transaction, contains all of the components of a logarithm, each can solve it and, thereby, derive a private session key used for the exchange. A third party can of course monitor the components as they flow over the open wire. Nevertheless, the computational expense required for deriving the private session key from those components makes the approach highly impractical (especially as the larger numbers are employed in the process).
Although this approach can be used to establish a secure communication line between points A and B, the approach does not address the problem of a "man in the middle." Specifically, the methodology cannot be employed to guarantee that point B is really what point A expected it to be. For instance, given the desire of a client to establish a secure line with a server, the client might instead establish a secure line with a "man in the middle"--a server imposter. In such a scenario, the client establishes a private session key with the "man in the middle," who in turn maintains a totally separate session with the server (which thinks that it is the client). The "man in the middle" therefore establishes a secured transmission session with the real server, in essence making the "man in the middle" also a client imposter. Since, in this scenario, the "man in the middle" is situated in the communication pipeline between two secured transmission lines, it is able to monitor unsecured information. This problem is particularly acute for Internet-based communication. With the Internet, a client generally does not know how it is getting to its final data, at a target server. Often, the client must establish a communication link through a number of exchanges. With this common approach, communication is routed through a number of machines, any one of which can be set up to pose as a "man in the middle."
Further, simply guaranteeing that data can be passed securely between the client and the server does not guarantee that the data will not be viewed at the server side. Therefore, a viable solution should store information in an enciphered form at the server with no key to unlock it.
What is needed is a methodology allowing secure, authorized transactions to take place between a network computer client and a network server over an open wire. Such methodology would allow users to be able to establish a secure connection with a server from a network client, authorize themselves, verify the server and perform all client-related work including sending and receiving secure mail and modifying their public records. The approach needed is to "know" the ultimate target without knowing how (i.e., what routes) that ultimate target is reached. However the information is transmitted, such an approach should guarantee that those components which serve as routers have only the ability to transmit data intact; these components cannot modify or examine the data. The bits of data should be unintelligible or otherwise useless to unauthorized parties, including the server which serves as the storage site for the user's private data. The present invention fulfills this and other needs.